package com.uls.questionnaire.mapper;

import java.util.List;
import com.uls.questionnaire.domain.ZxhQuestionnaire;
import com.uls.questionnaire.domain.ZxhQuestion;
import com.uls.questionnaire.vo.QuestionnaireVO;
import com.uls.questionnaire.vo.QuestionnaireViewVO;
import io.lettuce.core.dynamic.annotation.Param;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

/**
 * 问卷信息Mapper接口
 * 
 * @author zxh
 * @date 2024-10-31
 */
@Mapper
public interface ZxhQuestionnaireMapper 
{
    /**
     * 查询问卷信息
     * 
     * @param questionnaireId 问卷信息主键
     * @return 问卷信息
     */
    public ZxhQuestionnaire selectZxhQuestionnaireByQuestionnaireId(Long questionnaireId);

    /**
     * 查询问卷信息列表
     * 
     * @param zxhQuestionnaire 问卷信息
     * @return 问卷信息集合
     */
    public List<ZxhQuestionnaire> selectZxhQuestionnaireList(ZxhQuestionnaire zxhQuestionnaire);

    /**
     * 新增问卷信息
     * 
     * @param zxhQuestionnaire 问卷信息
     * @return 结果
     */
    public int insertZxhQuestionnaire(ZxhQuestionnaire zxhQuestionnaire);

    /**
     * 修改问卷信息
     * 
     * @param zxhQuestionnaire 问卷信息
     * @return 结果
     */
    public int updateZxhQuestionnaire(ZxhQuestionnaire zxhQuestionnaire);

    /**
     * 删除问卷信息
     * 
     * @param questionnaireId 问卷信息主键
     * @return 结果
     */
    public int deleteZxhQuestionnaireByQuestionnaireId(Long questionnaireId);

    /**
     * 批量删除问卷信息
     * 
     * @param questionnaireIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteZxhQuestionnaireByQuestionnaireIds(Long[] questionnaireIds);

    /**
     * 批量删除问题信息
     * 
     * @param questionnaireIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteZxhQuestionByQuestionnaireIds(Long[] questionnaireIds);
    
    /**
     * 批量新增问题信息
     * 
     * @param zxhQuestionList 问题信息列表
     * @return 结果
     */
    public int batchZxhQuestion(List<ZxhQuestion> zxhQuestionList);
    

    /**
     * 通过问卷信息主键删除问题信息信息
     * 
     * @param questionnaireId 问卷信息ID
     * @return 结果
     */
    public int deleteZxhQuestionByQuestionnaireId(Long questionnaireId);


  //  List<ZxhQuestion> selectQuestionsByQuestionnaireId(Long questionnaireId);

   public List<QuestionnaireViewVO> selectQuestionnaireDetails(@Param("questionnaireId") Long questionnaireId);



    List<QuestionnaireVO> getAllQuestionnaires();

    public ZxhQuestionnaire selectZxhQuestionnaireFlowId(Long flowInstanceId);

    public ZxhQuestionnaire  selectZxhQuestionnaireFlowIdOther(ZxhQuestionnaire questionnaire);

}
